/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package br.com.imob.modelo;

import java.io.Serializable;
import java.util.List;

import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;

/**
 *
 * @author Gilton Nascimento
 */
@Entity
@Table(name = "\"ORIGEM\"", catalog = "imob", schema = "public")
@NamedQueries({
    @NamedQuery(name = "Origem.findAll", query = "SELECT o FROM Origem o"),
    @NamedQuery(name = "Origem.findByOrigemId", query = "SELECT o FROM Origem o WHERE o.origemId = :origemId"),
    @NamedQuery(name = "Origem.findByOrigem", query = "SELECT o FROM Origem o WHERE o.origem = :origem"),
    @NamedQuery(name = "Origem.findLikeByOrigem", query = "SELECT o FROM Origem o WHERE o.origem Like :origem")
    })
public class Origem implements Serializable {
    private static final long serialVersionUID = 1L;

    @Id
//  <editor-fold defaultstate="collapsed" desc="Geradores de Sequencias">
    @GeneratedValue(strategy = GenerationType.AUTO, generator = "SEQ_STORE")
    @SequenceGenerator(name = "SEQ_STORE", sequenceName = "next_origem")// </editor-fold>
    @Basic(optional = false)
    @Column(name = "origem_id", nullable = false)
    private Integer origemId;
    @Basic(optional = false)
    @Column(name = "origem", nullable = false, length = 80)
    private String origem;
    @OneToMany(mappedBy = "origem", fetch = FetchType.LAZY)
    private List<Pessoa> pessoaList;
    @OneToMany(mappedBy = "origem", fetch = FetchType.LAZY)
    private List<Imovel> imovelList;

    public Origem() {
    }

    public Origem(Integer origemId) {
        this.origemId = origemId;
    }

    public Origem(String orig) {
    	origem = orig;
    }
    
    public Origem(Integer origemId, String origem) {
        this.origemId = origemId;
        this.origem = origem;
    }


	public Integer getOrigemId() {
        return origemId;
    }

    public void setOrigemId(Integer origemId) {
        this.origemId = origemId;
    }

    public String getOrigem() {
        return origem;
    }

    public void setOrigem(String origem) {
        this.origem = origem;
    }

    public List<Pessoa> getPessoaList() {
        return pessoaList;
    }

    public void setPessoaList(List<Pessoa> pessoaList) {
        this.pessoaList = pessoaList;
    }

    public List<Imovel> getImovelList() {
        return imovelList;
    }

    public void setImovelList(List<Imovel> imovelList) {
        this.imovelList = imovelList;
    }

    public Object[] getValues() {
    	Object[] objects = {origemId, origem};
    	return objects; 
    }
    
    @Override
    public int hashCode() {
        int hash = 0;
        hash += (origemId != null ? origemId.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        if (!(object instanceof Origem)) {
            return false;
        }
        Origem other = (Origem) object;
        if ((this.origemId == null && other.origemId != null) || (this.origemId != null && !this.origemId.equals(other.origemId))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "br.com.imob.modelo.Origem[origemId=" + origemId + "]";
    }

}
